<?php
require('lib/templatepower.class.php');
require('lib/mysql.class.php');
require('lib/functions.php');
require('conf.php');

$tpl = new TemplatePower('view.htm');
$tpl->Prepare();

// Нет прямому вызову!
if (empty($_GET['page_id']) || check_int($_GET['page_id']) == false)
{
	die();
}

$page_id = (int) $_GET['page_id']; // id страницы
// Проверяем, существует ли эта страница
$search = $db->QuerySingleValue('SELECT COUNT(`id`) FROM `eng_main` WHERE `id`='.$page_id);

if ($search == 0) // Если страница не найдена
{
	$tpl->newBlock('notfound');
}
else 
{
	$tpl->newBlock('main');
	// Информация для статистики
	$str = 'SELECT `url`, `page_name`, `new_words`, `total_words`, `length`, `eng_category`.`name`,
			(SELECT COUNT(`word_id`) FROM `eng_assign` WHERE `url_id`='.$page_id.') AS `uniq` 
			FROM `eng_main` 
			INNER JOIN `eng_category`
			  ON `eng_main`.`cat`=`eng_category`.`id`
			WHERE `eng_main`.`id`='.$page_id;
	
	// Получаем информацию о странице
	$page_info = $db->QuerySingleRow($str);
	$maxcount = $db->QuerySingleValue('SELECT MAX(`count`) FROM `eng_assign` WHERE `url_id`='.$page_id);
	
	// Если было заданы опции отображения количества слов
	if (isset($_GET['maxwords']) && isset($_GET['sort']))
	{
		if (check_int($_GET['maxwords']) || check_int($_GET['sort'])) // Проверка на валидность данных
		{
			$maxwords = (int) $_GET['maxwords'];
			$sort = ($_GET['sort'] == 1) ? 'DESC' : 'ASC'; // Критерий сортировки в зависимости от выбора
		}
		else
		{
			die();
		}
	}
	else // Значения по умолчанию 
	{
		$maxwords = 25;
		$sort = 'DESC';
	}
	
	// Получаем информацию о словах на странице
	$db->Query('SELECT `count`, `name`, `translate` 
				FROM `eng_assign` 
				INNER JOIN `eng_words` 
				  ON `eng_assign`.`word_id`=`eng_words`.`id`
				WHERE `url_id`='.$page_id.' ORDER BY `count` '.$sort.' LIMIT 0, '.$maxwords);
	
	// Рисуем таблицу со словами
	$i = 0; // Номер строки
	while (!$db->EndOfSeek())
	{
		$i++;
		$info = $db->Row();
		$tpl->newBlock('list_stat');
		if ($i%2 == 0)
		{
			$tpl->assign('oddeven', 'odd');
		}
		else 
		{
			$tpl->assign('oddeven', 'even');
		}
		$procent = ceil(($info->count*100)/$maxcount); // Ширина графика в процентах
		$tpl->assign('number', $i); // Номер строки
		$tpl->assign('word', $info->name); // Название слова
		$tpl->assign('count', $info->count); // Количество повторений
		$tpl->assign('translate', $info->translate); // Перевод слова
		$tpl->assign('div', $procent); // График
	}
	
	/*
	 *  Выводим статистику страницы
	*/
	$size = bytes2kb($page_info->length).' кб.'; // Объем слов на странице в килобайтах
	$tpl->newBlock('stat');
	$tpl->assign("page_url", $page_info->url); // URL страницы
	$tpl->assign("page_name", $page_info->page_name); // имя страницы
	$tpl->assign("words_total", $page_info->total_words); // всего слов на странице
	$tpl->assign("words_uniq", $page_info->uniq); // уникальных слов
	$tpl->assign("new_added", $page_info->new_words); // новых слов
	$tpl->assign("text_size", $size); // объем текста
	$tpl->assign('cat', $page_info->name);
	$tpl->assign('page_id', $page_id);
	
    /*
	 *  Находим страницы с того же сайта
	*/
	$pattern_match = '/(http:\/\/[a-z0-9-\.]+)/'; // Шаблон для нахождения сайта
	preg_match($pattern_match, $page_info->url, $out);
	$site = $out[0]; // Адрес сайта
	
	// Запрос на поиск страниц с того же сайта
	$db->Query('SELECT `id`, `page_name` FROM `eng_main` WHERE `url` LIKE \''.$site.'%\' AND `page_name`<>\'\' AND `id`<>'.$page_id.' LIMIT 0, 10');
	if ($db->RowCount() != 0) // Если найдены ссылки с этого сайта
	{
		$tpl->newBlock('simular_url');
		while (!$db->EndOfSeek()) 
		{
			$tpl->newBlock('simular_list');
			$urls = $db->Row();
			$tpl->assign('url_id', $urls->id);
			$tpl->assign('url_name', cutAndSafe($urls->page_name, 45));
		}
	}
}

$tpl->PrintToScreen();
?> 